package org.dezenho.server.RN.Teste;

import static org.junit.Assert.*;

import java.util.ArrayList;
import java.util.List;

import org.dezenho.common.RMI.ClientAcertadorMoq;
import org.dezenho.common.RMI.ClientMoq;
import org.dezenho.server.RN.Jogador;
import org.dezenho.server.RN.Partida;
import org.dezenho.server.RN.Rodada;
import org.junit.BeforeClass;
import org.junit.Test;

/**
 * Testes para a classe Rodada
 * 
 * @author marcelasobrinhopereira
 * 
 */
public class TesteRodada {

	private Partida partida;
	private Rodada rodada;
	private static List<Jogador> list = new ArrayList<Jogador>();

	/**
	 * Inicializacoes necessarias para a partida
	 * 
	 * @throws Exception
	 */
	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
		Jogador jogador1 = new Jogador(new ClientMoq(), "1", "1");
		list.add(jogador1);
		Jogador jogador2 = new Jogador(new ClientMoq(), "2", "2");
		list.add(jogador2);
		Jogador jogador3 = new Jogador(new ClientAcertadorMoq(), "3", "3");
		list.add(jogador3);
		Jogador jogador4 = new Jogador(new ClientMoq(), "4", "4");
		list.add(jogador4);
	}

	/**
	 * Teste para controlar rodada O jogador3 acerta em tempo restante = 5
	 */
	@Test
	public void testeControlarRodada() {
		partida = new Partida(list, new Integer(1));
		partida.iniciaPartida();
		rodada = partida.getRodada();
		rodada.controlaRodada();
	}

	/**
	 * Teste para o m�todo iniciaNovaRodada
	 */
	@Test
	public void testeIniciaNovarodada() {
		partida = new Partida(list, new Integer(1));
		rodada = new Rodada(partida);
		rodada.iniciaNovaRodada();
		assertNotNull(rodada.getTemporizador());
	}

}
